package ae.pcfc.cldos.online.common.clddb.domain;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.hibernate.envers.Audited;

import ae.pcfc.cldos.online.common.domain.BaseEntity;


/**
 * The persistent class for the T_CLDOS_PERSONAL_DETAILS database table.
 * 
 */
@Entity
@Table(name="T_CLDOS_VISIT_VISA_CANCEL")
@Audited
public class VisitVisaCancel extends BaseEntity implements Serializable {
	private static final long serialVersionUID = 1L;
	
	public static final String __EXIT_WITH = "STATUS_YES";
	public static final String __EXIT_WITHOUT = "STATUS_NO";
	public static final String __EXIT_CANCEL = "VISA_TERM_TYPE_CANCEL";
	
	public static final String EMPLOYEE_ID = "vvcEmployeeId";

	@Id
	@GeneratedValue(generator="SQ_CLDOS_APP_ID")
	@GenericGenerator(name = "SQ_CLDOS_APP_ID",  strategy="foreign", parameters=@Parameter(name="property", value="AppMetaData"))
	@Column(name="APPLICATION_ID")
	private Long applicationId;
	
	@Column(name="VVC_EMPLOYEE_ID")
	private String vvcEmployeeId;
	
	@Temporal(TemporalType.DATE)
	@Column(name="VVC_EXIT_DATE")
	private Date vvcExitDate;
	

	@Column(name="VVC_REMARKS")
	private String vvcRemarks;
	
	@Column(name="VVC_EXIT_MODE")
	private String vvcExitMode;
	

	public Date getVvcExitDate() {
		return vvcExitDate;
	}

	public void setVvcExitDate(Date vvcExitDate) {
		this.vvcExitDate = vvcExitDate;
	}

	public String getVvcRemarks() {
		return vvcRemarks;
	}

	public void setVvcRemarks(String vvcRemarks) {
		this.vvcRemarks = vvcRemarks;
	}

	public String getVvcExitMode() {
		return vvcExitMode;
	}

	public void setVvcExitMode(String vvcExitMode) {
		this.vvcExitMode = vvcExitMode;
	}

	public AppMetaData getAppMetaData() {
		return AppMetaData;
	}

	public void setAppMetaData(AppMetaData appMetaData) {
		AppMetaData = appMetaData;
	}

	public Long getApplicationId() {
		return applicationId;
	}

	public void setApplicationId(Long applicationId) {
		this.applicationId = applicationId;
	}

	public String getVvcEmployeeId() {
		return vvcEmployeeId;
	}

	public void setVvcEmployeeId(String vvcEmployeeId) {
		this.vvcEmployeeId = vvcEmployeeId;
	}

	//bi-directional many-to-one association to AppMetaData
	@OneToOne(fetch=FetchType.LAZY, cascade=CascadeType.ALL, optional=true)
	@PrimaryKeyJoinColumn
	private AppMetaData AppMetaData;

}